Myp00029 通信ソフトでオートログインする法

#0000 sci1354  8808201039

わたしはNECのPC−9801UV2、AIWAのPV−A1200MkU、
技術評論社の通信ソフトCCT−98Uを用いてアクセスしています。通信ソフ
トは簡易言語が使え、オートログインなどのプログラムを作ることができます。
手動や簡易言語で、頻繁にアクセスして、以下のようなプログラムを作成しまし
た。初めプログラムが暴走し、システムにご迷惑をおかけしまいお詫びします。
パスワードを変更したものが、仮パスワードに戻っていたのが原因でした。その
為にlogin incorrectが出てしまうことに気づくのに時間が少し
入りました。コマンドや使い勝手が分かってから、パソコン通信のボードならば
mypc.sciというファイルに新しい書き込みだけを自動的に追加しながら
書き込めるようなプログラムにバージョンアップしたいものです。もし、同じ通
信ソフトをお使いの方がいらっしゃいましたらお試し下さい。また、レポートを
いただければ幸いです。よりより良きオートログイン・プログラムがありました
ら、どうぞ、ご伝授下さい。               東京都足立区  牛込和則
------------------------------------------------------------------------
;Science Net 接続用プログラム
MYID="sciXXXX";  XXXXの部分をあなたのIDに書き換えて下さい。
PASS="XXXXXXX";  XXXXの部分をあなたのパスワードに書き換えて下さい。
access:
    color 6
    print   "\r\n★ サイエンスネット アクセス開始 ★\r\n"
    color 7
    sleep 2
    send "\r"
login:
    case    "login:"       "Password:"    "下さい。"
    send    "%s\r",MYID    "%s\r",PASS    "\r"        ""
    goto    login          login          command     *
    end
error:
    print   "\07応答がないので簡易言語の処理を中止しました。\r\n"
    end
command:
;    case    "[q]) >"        ;ページ表示をする時は;を取り除く
;    send    "p"
;    case    "下さい。"
;    send    "\r"
    case    "[q]) >"
    send    "2\r"            ;「科学フリートーク」へ直行
    end
exit:
    er off
    wait 4
    er on
    end                                                                         --------------------------------------------------------------------------

#0001 sci1032  8809021405

同じ機種構成です。
早速オートログインプログムにくみこんで使わせてもらいます。
滋賀県からアクセスの中川でした。  by SCI1032
 

#0002 reader   8809060251

私の場合の PCVAN SFsigの オートログイン・ダウンロードの簡易言語プログラムです。
CCT98 用
    speed 1200
    n = 1
    LogFile = "B:pcvan.log"
    TIMEOUT 180
    autodial "052-251-3258" "ATX4" 999 15   ;オートダイアルを起動します。
    then ログイン                 ;つながった場合はログイン開始
    print "ダイアルできませんでした。\r\n"  ;メッセージを表示する。
    case "\r\n"
    wait 1
    send "ATDT0522513258\r"
    goto ログイン Redial
Redial:
    case "\r\n"
    wait 1
    send "A/"
    goto ログイン
ログイン:
    n=n+1
    if (n > 30)
    then Redial
    wait 3
    send "VANPCNEC02\r"
ログイン2:
    case "USER_ID:""PASSWORD:""シマスカ(Y,N)=""(H,Q,J)=""ですか(Y,N)=""しますか(Y,N)=""(SFDB)" "(DISCONNECTED)" "\nNO CARRIER"
    send "SSSSSSSS\r" "SSSSSS\r" "n\r" "j sf\r" "y\r" "n\r"
    goto ログイン2 ログイン2 ログイン2 ログイン2 ログイン2 ログイン2  RN0  ログイン Redial Redial
RN0:
    rn=1
    fopen Logfile
    goto *
RN: 
    case "たはコマンド(H,Q,E,J)="",SCm,Wm,D,RNm,RTm,J)="
    send "3\r" "rn%d\r",rn
    goto RN    loop        Error
RNX:
    rn=rn+1
    if (rn>=9)
    then コマンド
    goto *
WAIT:
    case ",SCm,Wm,D,RNm,RTm,J)="  "J)="
    send "rn%d\r",rn  "s\r"
    goto loop loop
loop:
    case "(M,S,F,H,Q,R,RB,RBn,SC,SCn,RT,TL,TLn,J)="  ",SCm,Wm,D,RNm,RTm,J)="  "J)="  "新しいメッセージは、ありません。"
    send "RB\r" "rn%d\r",rn  "\r"  
    goto loop  loop  loop  RNX  Error
Error:
    Print "\07エラーです。\r\n"             ;エラーを表示する。
    end                                     ;簡易言語を終了する。
 
    fclose
    send "q\r"
    er off
    end                                     ;簡易言語を終了
これだけ作るのに結構かかったんですよ。
皆さんがもし作るとしたら、ちゃんとフローチャートを書いてからやったほうがいいですよ。
                                           KEI
;の後の文字は不要ですよ。

#0003 sci1509  8810190232

 CCT−98U上で動く未読発言連続読込用簡易言語をお送りします.
 使い方としては,オートログインプログラム終了後,このプログラムを
起動するか,オートログインプログラムのラベル commandから先をこのプ
ログラムと入れ換えてやるかすればよいでしょう.但し,ひたすら [l]コ
マンドを打ち続けますからゲストにはあまり役立たないでしょう.また,
case文で参照している文字列がテキスト中にあった場合(滅多にはないと
は思いますが)誤動作してしまいます.
 うーん,こうして注意事項を並べていると,制限ばかり多くて誰の役に
も立たないような気がしてきた.
                            TAKA

#0004 sci1509  8810190235

;Science Net 未読発言連続読込プログラム
varset:      ; ここの代入値を変えることで読むボードの範囲を変えられます
    I=2      ; メニューレベル0で最初に読む番号(2はフリートーク)
    J=1      ; メニューレベル1で最初に読む番号(4.1は原発)
    IMAX=5   ; メニューレベル0で最後に読む番号(5は練習コーナー)
    JMAX=2   ; メニューレベル1で最後に読む番号(4.2は私のパソコン通信)
command:
 color -7  ;私がリバースを好きなだけで,意味はありません
 case "レベル 0 ---" "レベル 1 ---" "関連書込 [w]" "最後のページです ***"
 send ""             ""             "l"            "q\r"
 goto level0         level1         command        command  *
level0:
    if   I>IMAX
    then end  *
              send "%s\r",&(I)
              I=I+1
              goto command
level1:
    if   J>JMAX
    then l1to0 *
               send "%s\r",&(J)
               J=J+1
               goto command
l1to0:
    send "\r"
    goto command
end:
    end

#0005 sci1585  8810230020

    皆様のプログラムを見て、自分が今まで使っていたプログラムが恥ずかしくなっ
てしまったので、新しく作りました。
    そこで、つぎにupしますので、皆様の意見を頂きたいと思います。宜しくお願
いします。
    簡単に説明すると、CCT-98U上でサイエンスネットにオートログインして、未読
の書き込みを読み、ログアウトするものです(本当に簡単だなあ)。このとき、自動
的にログファイルができますので、ログファイルは「作成しない」にしておいてくだ
さい。詳しくは、プログラムを。
    *** 興味のない方は、次をスキップしてください ***
             3500bytes 120line 程になってしまいました。
      やはり文章が下手な、ずっーーーとROMしていた「AkiRA」でした。
    p.s.前から書き込みをしたいと思っていましたが、書くことが苦手だったの
でずっとROMしていました。ROM化している人は、早く抜け出ましょう。

#0006 sci1585  8810230022

;   サイエンスネット オートログイン,ダウン&ログアウト
;       for CCT-98U        by AkiRA (sci1585)
;
;       ***ちょっと使い方を説明します***
;
;   まず、下の id,pw,logを書き換えてください。
;   次に、メインルーチンのgosubの引数部分を自分が読みたいところにあわせて、
;   次の決まりにしたがって書き換えてください。
;
;   gosub read  '  "いつも入力しているメニューの番号"  "ログにつけたい番号"
;       これで、未読の発言を読み込みます。
;   gosub down  '  (いくつレベルを下げるか)  "そのとき選択するメニューの番号"
;       これで、レベルを下げることができます。
;   gosub up    '  (いくつレベルを上げるか)
;       これで、レベルを上げます。
;
;   以上です。 " があるか、ないかに気を付けてください。
;   変なところ、使いづらいところがありましたら、RESしてください。
;   それから、scilogを使っている方は
;   readルーチンの fclose, fopen の行を削除してください。
;
;   最後に、; 以下のコメントは自由に削除してください。
    id = "sciXXXX"  ;自分のIDに書き換えてください。
    pw = "XXXXXXXX" ;パスワード
    log = "a:\\snet"    ;ログのファイル名を指定してください。
                        ;この設定で、A: のルートディレクトリに SNET????.LOG が
                        ;作成されます。
    timeout 30
    fopen "%s.log",log down
login:
    case "login:"   "incorrect"  "Password:"  "押して下さい"
    send "%s\r",id  ""           "%s\r",pw    "\r"
    goto login      login        login        command           exit
exit:
    er off
    wait 4
    er on
    fclose download
    end
command:
    gosub wait_prompt
;   ここからを書き換えてください。------------------------------------------
;   この状態ですべてのボードをまわります。いらないところを消してください。
    gosub read      ' "1" "1"   ;1の「ネット利用案内」
    gosub read      ' "2" "2"   ;2の「科学フリートーク」
    gosub read      ' "3" "3"   ;3の「科学記事ウオッチ」
    gosub down      ' 1 "4"     ;4を選んで、レベル1に降ります。
    gosub read      ' "1" "4_1" ;1の「原子力発電」
    gosub read      ' "2" "4_2" ;2の「私のパソコン通信」
    gosub up        ' 1         ;レベル0に、上がります。
    gosub read      '"5" "5"    ;5の「練習コーナー」
;   ------------------------------------------------------------------------
    gosub quit  ;ログアウトします。
    end
wait_prompt:
    case "コマンド入力("
    goto *              exit
    return
read:       ;ボードに移り、未読を読む。
    fclose download                 ;fclose
    fopen "%s%s.log",log,arg[2]     ;fopen
    send "%s\r",arg[1]
read1:
    case "\n"  "** 最後のページです **"  "コマンド入力("  "コマンドエラー"
    send ""    "q"                       "l"
    goto read1 *                         read1         cerr              exit
    case "キーを押して下さい"
    send "\r"
    goto *      exit
    gosub wait_prompt
    return
cerr:
    timeout 3
    case "議    題"
    send ""         "l"
    timeout 30
    goto read1
down:       ;レベルを下げる。
    c = arg[1] + 1
    d = 1
down_loop:
    d = d + 1
    send "%s\r",arg[d]
    gosub wait_prompt
    if d == c
    then down_end
    goto down_loop
down_end:
    return
up:         ;レベルを上げる。
    c = arg[1]
    d = 1
up_loop:
    send "\r"
    gosub wait_prompt
    if d == c
    then up_end
    d = d + 1
    goto up_loop
up_end:
    return
quit:       ;ログアウトする。
    send "q\r"
    case "(y/n) ?"
    send "y\r"
    goto *              exit
    timeout 5
    case "NO CARRIER"
    goto *              exit
    fclose download
    return